home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 1997 July / Freeware CD.iso / FREEWARE / !utils / sfs / SFS117!.EXE / SFS6.DOC < prev    next >
Encoding:
Text File  |  1995-03-20  |  67.3 KB  |  1,167 lines

  1. Politics
  2. --------
  3.  
  4. Many governments throughout the world have an unofficial policy on cryptography
  5. which is to reserve all knowledge and use of encryption to the government in
  6. general and the elite in particular.  This means that encryption is to be used
  7. firstly (in the form of restrictions on its use) for intelligence-gathering,
  8. and secondly for protecting the secret communications of the government.
  9. The government therefore uses encryption to protect its own dealings, but
  10. denies its citizens the right to use it to protect their own privacy, and
  11. denies companies the right to use it to protect their business data.  Only a
  12. very small number of countries have laws guaranteeing citizens' rights to use
  13. encryption[1].  Some countries have no explicit laws covering encryption, but
  14. have governments which support the use of encryption by their citizens[2].
  15.  
  16. This policy is enforced in many ways.  In the US it is mainly through the use
  17. of the ITAR, the International Traffic in Arms Regulations, a law which was
  18. passed without public debate during the second world war.  This defines all
  19. encryption material (hardware and software) as "munitions", subject to special
  20. governmental control[3].  France also classifies encryption devices as
  21. munitions[4].  These "munitions" in fact have no violent use beyond perhaps
  22. beating someone to death with a box of disks.  Their only possible use is to
  23. protect personal privacy and the privacy of business data.
  24.  
  25. In limiting the use (and export) of encryption technology[5], the US (and many
  26. other countries which follow the lead of the US) are not only denying their
  27. citizens the means to ensure the privacy of personal information stored on
  28. computer, they are also placing businesses at risk.  With no easy way to
  29. protect their data, companies are losing billions of dollars a year to
  30. industrial espionage which even a simple measure like SFS would help to reduce.
  31. Some real-life examples of what the lack of secure encryption can do are:
  32.  
  33.   - The head of the French DGSE (Direction Generale de la Securite Exterieure)
  34.     secret service has publicly boasted that his organisation, through
  35.     industrial espionage, helped French companies acquire over a billion
  36.     dollars worth of business deals from foreign competitors [6][7].
  37.  
  38.   - In a talk given to the Executives' Club of Chicago on 17 March 1994 by FBI
  39.     Director Louis Freeh, he stated that:
  40.  
  41.     "a nation's power is increasingly measured by economic prosperity at home
  42.      and competitiveness abroad.  And in some ways, the United States is a
  43.      sitting duck for countries and individuals who want to take a short cut to
  44.      power"
  45.  
  46.     [At least 20 nations are] "actively engaged in economic espionage"
  47.  
  48.     "This kind of information [cost and price structure, research and
  49.      development results, marketing plans, bids and customer lists] can be
  50.      intercepted from fax and satellite communications.  It can be monitored
  51.      from cellular and microwave telephone links. It can be retrieved from
  52.      inadequately protected computer systems".
  53.  
  54.    - A laptop stolen from Wing Commander David Farquhar on December 17th 1990
  55.      supposedly contained extremely sensitive information related to British
  56.      military operations against Iraq during the Gulf War.  This information
  57.      was known and published outside the UK, but was not published in the UK
  58.      due to censorship until The Irish Times ran a story on it in the January
  59.      3rd 1991 issue.  More information was finally disclosed on January 9th
  60.      1991 when Associated Press threatened to run the story anyway.  The
  61.      laptop was supposed to contain highly sensitive military plans, but no
  62.      steps had been taken to protect the information.
  63.  
  64.   - Volume 10, Issue 77 of the RISKS-Forum Digest, published on 11 January
  65.     1991, reported that thieves in the Soviet Union had stolen a computer used
  66.     to handle Russian internet traffic.  Although the target of the theft was
  67.     the computer hardware, the thieves also acquired all the private mail held
  68.     on the machine as plain text files.
  69.  
  70.   - The book "Friendly Spies" by Peter Schweitzer, published by Atlantic
  71.     Monthly Press, gives many accounts about covert intelligence operations
  72.     directed against US corporations by cold war allies, with foreign
  73.     governments conspiring with foreign companies to steal US technology and
  74.     economic secrets.  In 1988, the University of Illinois published a document
  75.     titled "A Study of Trade Secrets in High Technology Industries" which
  76.     revealed that 48% of all companies surveyed admitted to being the victims
  77.     of some form of inustrial espionage.
  78.  
  79.   - In a talk given to the National Press Club on 3 April 1990 by Senator David
  80.     Boren, he warns that:
  81.  
  82.     "An increasing share of the espionage directed against the United States
  83.      comes from spying by foreign governments against private American
  84.      companies aimed at stealing commercial secrets to gain a national
  85.      competitive advantage".
  86.  
  87.   - Volume 14, Issue 34 of the RISKS-Forum Digest, published on 22 February
  88.     1993, reports that "France and Germany and many other countries require US
  89.     companies to `register' their encryption keys for reasons of national
  90.     security.  All of the American transmissions are monitored and the data is
  91.     passed on to the local competitors.  Companies like IBM finally began to
  92.     routinely transmit false information to their French subsidiary just to
  93.     thwart the French Secret Service and by transitive property of economic
  94.     nationalism, French computer companies".
  95.  
  96.   - Markt und Technik, 18/94, page 49, in a discussion of US monitoring
  97.     stations in Germany, reports that "powerful computers scan telephone, fax,
  98.     and computer data traffic for information from certain sources, to certain
  99.     destinations, or containing certain keywords, and store any interesting
  100.     communications for later analysys.  The fear that such monitoring stations
  101.     will, after the end of the cold war, be used for industrial espionage, has
  102.     been expressed by DP managers and tacitly confirmed by US security
  103.     agencies".
  104.  
  105.   - Directorate T (for "technology") of the KGB has three main aims, two of
  106.     which relate to the acquisition of military intelligence on enemies of the
  107.     (former) USSR, and the third of which is "Acceleration of Soviet scientific
  108.     and technical progress by acquiring information and samples of
  109.     equipment"[8].  Since the collapse of the Soviet Union, the use of the KGB
  110.     for industrial espionage has increased dramatically.  A great many other
  111.     countries now use the idle capacity of their intelligence agencies for
  112.     industrial espionage purposes.
  113.  
  114.   - A US company was being consistently underbid by a Japanese competitor which
  115.     was intercepting their electronic traffic.  When they started encrypting
  116.     their messages, the underbidding stopped.  A few days later they were
  117.     requested by the US government to stop using encryption in their
  118.     traffic[9].
  119.  
  120.   - A New Zealand computer dealer acquired 90 used disks which turned out to
  121.     contain sensitive financial records from a large bank.  The evening after
  122.     he turned them over to the bank (for a $15,000 cash "finders fee") he was
  123.     killed in a road accident.  The finders fee was never recovered[10].
  124.  
  125.     Despite this major security problem, the bank wouldn't learn from their
  126.     mistakes.  A few weeks later a large-capacity disk drive from a network
  127.     server which was originally used by them was supplied to another company as
  128.     a supposedly "new" replacement for a drive which had died.  This drive was
  129.     found to contain the complete financial records from one of their branches.
  130.     Not wanting to be scraped off the side of the road one night, the system
  131.     manager decided to erase the contents of the drive[11].
  132.  
  133.     It isn't known how many more of their confidential financial records this
  134.     bank has handed out to the public over the years.
  135.  
  136.   - National Security Decision Directive 42, signed by President Bush in 1990,
  137.     notes that "telecommunications and information processing systems are
  138.     highly susceptible to interception, unauthorized access, and related forms
  139.     of technical exploitation as well as other dimensions of the foreign
  140.     intelligence threat.  The technology to exploit these electronic systems is
  141.     widespread and is used extensively by foreign nations and can be employed
  142.     as well by terrorist groups and criminal elements"[12].
  143.  
  144.   - A customer of an electrical goods retail store in the UK returned a
  145.     defective PC to the store, asking them to erase the contents of the hard
  146.     drive which contained confidential information.  Six months later he
  147.     received a phonecall from someone who had purchased his old computer from
  148.     the store, complete with the confidential information he had wanted
  149.     erased - like the previous case, the customer had been sold a supposedly
  150.     new machine which still held data left there by the previous owner[13].
  151.  
  152.   - The New Zealand Securities Commission accidentally left a number of
  153.     sensitive files on the hard drive of one of a group of machines which was
  154.     later sold at auction for $100.  These files were stored without any
  155.     security measures, and related to Securities Commission and Serious Fraud
  156.     Office investigations.  They were recovered about a week later, but not
  157.     before the press had got to them[14].
  158.  
  159.   - In a report on the front page of "Infotech Weekly", Issue 157, 15 August
  160.     1994, a systems analyst says he knows of dozens of cases of confidential
  161.     information being given away when old equipment is disposed of, including
  162.     "three alone during the past six months when commercially-sensitive or just
  163.     plain embarassing material was passed on inadvertently".  A particularly
  164.     widespread problem seems to be the improper disposal of backup disks full
  165.     of confidential records[15].
  166.  
  167.   - The owner of a notebook computer which had stopped working asked a visiting
  168.     computer instructor to take a look at it.  The instructor determined that
  169.     he could fix it with the Norton Utilities, which he had back at his office.
  170.     The companies network administrator, who also had a copy of the Norton
  171.     Utilities, offered to fix it on the spot to save taking the computer
  172.     offsite.  The notebook's hard drive contained the network administrators
  173.     dismissal papers.  Luckily the instructor was able to retrieve the notebook
  174.     before any damage was done[16].
  175.  
  176.   - The book "By Way of Deception" by Victor Ostrovsky and Claire Hoy,
  177.     published by St. Martins Press, New York, in 1990 (ISBN 0-312-05613-3),
  178.     reports in Appendix I that Mossad's computer services routinely monitor
  179.     VISA, AMEX, and Diner's Club transactions, as well as police computer
  180.     traffic.
  181.  
  182.   - An international banker travelled to Latin America with information on
  183.     various contacts there stored on his laptop.  His hotel room was broken
  184.     into and the computer stolen, along with all the client information.
  185.     Luckily the thieves were after the hardware rather than the software, as
  186.     the information stored in the machine could have caused serious problems
  187.     for the people involved[17].
  188.  
  189. In the case of the bank selling its financial records the lack of encryption
  190. not only had the potential to cause serious financial harm to the bank involved
  191. but resulted in the death of the main player.  The use of a program like SFS
  192. would have made the contents of the disks unreadable to anyone but the bank.
  193.  
  194. In 1991 the US Justice Department tried to introduce legislation that would
  195. require all US digital communications systems to be reengineered (at enormous
  196. cost) to support monitoring of message traffic by the FBI.  This measure was
  197. never passed into law.  The next year the FBI tried to introduce a similar
  198. measure, but could find no-one willing to back the bill.  In 1993, yet another
  199. attmempt was made, which is currently being fought by an unusual coalition of
  200. civil libertarians, computer users and companies, and communications providers.
  201. A poll carried out by Time/CNN in March 1994 indicated that 2/3 of Americans
  202. were opposed to the legislation[18].  It was finally passed on 7 October 1994
  203. as the Digital Telephony Act[19].
  204.  
  205. In April 1993, the US government announced a piece of hardware called the
  206. Clipper Chip.  They proposed that this device, whose details are classified and
  207. which contains self-destruct mechanisms which are activated if attempts are
  208. made to examine it too closely, be built into all telephones.  Each chip has a
  209. special serial number which identifies all communications carried out with that
  210. phone.  At the beginning of each transmission, telephones equipped with a
  211. Clipper Chip negotiate a connection which involves sending identifying
  212. information across the phone network, and setting up a common key to use for
  213. encrypting the conversation.
  214.  
  215. Built into this setup is a special back door which allows the government, and
  216. anyone who works for the government, and anyone who has a friend who works for
  217. the government, and anyone with enough money or force to bribe or coerce the
  218. aforementioned people, to monitor the conversation[20].  The job is made much
  219. easier by the extra identification information which the Clipper Chip attaches
  220. to the data stream.  The Clipper Chip allows monitoring on a scale even George
  221. Orwell couldn't have imagined when he wrote his novel "1984"[21
  222. US government prefers to call the mechanism used by Clipper a key escrow
  223. system, it is in fact a key forfeiture system in that all hope of privacy is
  224. forfeited to the government.  The Time/CNN poll mentioned above found that 80%
  225. of Americans were opposed to the Clipper Chip[18][22].
  226.  
  227. The Clipper Chip is also susceptible to an attack in which a fake
  228. Clipper-encrypted message can be created without needing to know the encryption
  229. keys, allowing either false evidence to be created, or allowing genuine
  230. evidence to be discounted on the basis that it might have been faked[23].
  231.  
  232. A somewhat less blatant attempt to bypass communications privacy is gradually
  233. appearing in the rest of the world.  The GSM digital telephone system uses a
  234. special encryption algorithm called A5X which is a modified form of a stronger
  235. system called A5.  A5X exists solely as a deliberately crippled A5, and is
  236. relatively easy to bypass for electronic monitoring purposes.  Although the
  237. details of A5 are classified "for national security purposes"[24], various
  238. sources have commented that even the original unmodified A5 probably provides
  239. only limited security against a determined attack, and the actual
  240. implementation exhibits some fundamental flaws (such as a 3-hour key rollover)
  241. which can greatly aid an attacker[25][26].
  242.  
  243. It is against this worrying background that SFS was created.  Right from the
  244. start, the idea behind SFS was to provide the strongest possible cryptographic
  245. security.  No compromises were made, there are no back doors or weaknesses
  246. designed into the system, nor will there ever be the deliberate crippling of
  247. the system or undermining of its integrity which some organizations would like.
  248. The algorithms and methods used in SFS have been selected specifically for
  249. their acknowledged strength and general acceptance by the worldwide
  250. cryptographic community, and conform to a wide variety of national and
  251. international standards for secure encryption.  As new algorithms and
  252. cryptographic processes appear, SFS will be updated to always provide the best
  253. possible security available.
  254.  
  255. Footnote [1]: One of these is Japan.  Article 21 of the Japanese Consitution
  256.               states:  "Freedom of assembly and association as well as speech,
  257.               press, and all other forms of expression are guaranteed.  No
  258.               censorship shall be maintained, nor shall the secrecy of any
  259.               means of communication be violated".
  260.  
  261. Footnote [2]: The only known UK government statement on the use of encryption
  262.               is in the record of parliamentary debates (Hansard) for Thursday
  263.               21st April 1994 and consists of a written answer to a question
  264.               posed by an MP:
  265.  
  266.               Mr. Llew Smith: To ask the Secretary of State for the Home
  267.               Department what is Her Majesty's Government's policy towards the
  268.               use of private encryption technology by individuals or companies
  269.               to protect data sent by electronic mail.
  270.  
  271.               Mr. McLoughlin: I have been asked to reply.  It is a matter for
  272.               the individual, or company, to take measures, which may include
  273.               private encryption technology, which they consider necessary to
  274.               safeguard their electronic mail communication.
  275.  
  276. Footnote [3]: The ITAR, 22 CFR commencing with section 120, has provisions in
  277.               section 121.1, under Category XII (b) that "cryptographic devices
  278.               and software" are considered to be defense articles subject to
  279.               the State Department's Office of Defense Trade Controls authority
  280.               with respect to export.
  281.  
  282. Footnote [4]: The "decret du 18 avril 1939" defines 8 categories of arms and
  283.               munitions from the most dangerous (1st category) to the least
  284.               dangerous (8th category).  The "decret 73-364 du 12 mars 1973"
  285.               specifies that encryption equipment belongs to the second
  286.               category.  Any usage of such equipment requires authorization
  287.               from the Prime Minister.  The "decret 86-250 du 18 fev 1986"
  288.               extends the definition of encryption equipment to include
  289.               software.  It specifies that each request for authorization for
  290.               business or private usage of the equipment must be sent to the
  291.               Minister of Telecommunications.  The request must include a
  292.               complete and detailed description of the "cryptologic process",
  293.               and if this is materially possible, of two copies of the
  294.               envisaged equipment (see also Footnote 6).  The "loi 90-1170 du
  295.               29 decembre 1990" states that export or use of encryption
  296.               equipment must be previously declared when used only for
  297.               authentication, and previously authorized by the Prime Minister
  298.               in all other cases, with penalties of fines of up to 500 000F and
  299.               three months in jail.  Import of encryption equipment (but not
  300.               encrypted data) is prohibited by the "decret du 18 avril 1939",
  301.               article 11.  However the "loi du 29 dec 1990" only restricts use
  302.               or export, not import, of encryption equipment.  There are no
  303.               restrictions on the import of encrypted data.  Information on the
  304.               (questionable) need to license encryption is available via FTP
  305.               from ftp.urec.fr in the directory /pub/securite/Divers as
  306.               autorisation.utilisation.crypto.
  307.  
  308.               In general, these laws appear not to be enforced, with encryption
  309.               software being freely imported, exported, available, and used in
  310.               France.
  311.  
  312. Footnote [5]: The reasoning behind this, as stated by the Permanent Select
  313.               Committee on Intelligence in its commentary of 16 June 1994 on
  314.               the HR.3937 Omnibus Export Administration Act is that "the
  315.               intelligence community's cryptologic success depends in part on
  316.               controlling the use of encryption [...] controlling the
  317.               dissemination of sophisticated encryption has been and will
  318.               continue to be critical to those successes [of the US
  319.               intelligence community] and US national security interests".
  320.  
  321. Footnote [6]  This was reported by cryptographer Martin Hellman at the 1993 RSA
  322.               Data Security conference on 14-15 January 1993.
  323.  
  324. Footnote [7]: "If someone steals from your computer, you probably won't know
  325.                it.  You may find yourself losing customers, or market share, or
  326.                your ideas may show up in unexpected places" - Mark Rasch, a
  327.                lawyer who specialises in computer crime at the Washington law
  328.                firm Arendt, Fox, Kintner, Plotkin, and Kahn, quoted in
  329.                "InfoTech Weekly", Issue 168, 31 October 1994, page 10.
  330.  
  331. Footnote [8]: The industrial espionage practices of Soviet intelligence
  332.               agencies is discussed in more detail in "Soviet Industrial
  333.               Espionage", which appeared on page 25 of the April 1987 edition
  334.               of the Bulletin of the Atomic Scientists.
  335.  
  336. Footnote [9]: Private communications from one of the people involved.
  337.  
  338. Footnote [10]: This event received nationwide TV, radio, and newspaper coverage
  339.                at the time.  For example, any New Zealand paper published on 7
  340.                September 1992 should provide more information.
  341.  
  342. Footnote [11]: Private communications from the system manager involved.
  343.  
  344. Footnote [12]: Postions of NSDD-42 were declassified on 1 April 1992 through
  345.                the efforts of Marc Rotenberg of the Computer Professionals for
  346.                Social Responsibility.
  347.  
  348. Footnote [13]: This was reported on "Watchdog", a BBC consumer affairs
  349.                television program screened on Monday 26th September 1994.
  350.  
  351. Footnote [14]: This event received nationwide TV, radio, and newspaper coverage
  352.                at the time.  Most New Zealand papers published on 13 August
  353.                1994 contain coverage of the story.  Mention of the return of
  354.                the files was made about a week later.
  355.  
  356. Footnote [15]: A computer trader who buys machines at auction for
  357.                reconditioning and later resale says "the amount of stuff we
  358.                find on the machines we handle is incredible.  You don't need to
  359.                do any fancy bugging of a companies offices to get at their
  360.                business records, all you need to do is buy their old computers.
  361.                Occasionally they'll go as far as reformatting the drives, which
  362.                won't slow anyone down for more than 10 minutes".
  363.  
  364. Footnote [16]: This was discussed in the alt.folklore.computers newsgroup on
  365.                7 March 1995, message-ID <3jgv90$74q@huey.cadvision.com>
  366.  
  367. Footnote [17]: This was discussed in the alt.privacy newsgroup on 7 January
  368.                1995, message-ID <3el7ju$gt3@pipe1.pipeline.com>.
  369.  
  370. Footnote [18]: "In a Time/CNN poll of 1,000 Americans conducted last week by
  371.                 Yankelovich Partners, two thirds said it was more important to
  372.                 protect the privacy of phone calls than to preserve the ability
  373.                 of police to conduct wiretaps.  When informed about the Clipper
  374.                 Chip, 80% said they opposed it" - Philip Elmer-Dewitt, "Who
  375.                 Should Keep the Keys", TIME, 14 March 1994.
  376.  
  377. Footnote [19]: On 7 October 1994 the US Congress passed the HR 4922/SR 2375
  378.                Digital Telephony Act, which was signed into law as the
  379.                Communications Assistance for Law Enforcement Act on 25 October.
  380.                This requires telecommunications carriers to modify existing
  381.                equipment and design new equipment to facilitate monitoring of
  382.                communications by law enforcement agencies.
  383.  
  384. Footnote [20]: In June 1994, an AT&T researcher discovered a means of bypassing
  385.                this monitoring using about 28 minutes of computation time on
  386.                easily-available mass-market Tessera (now renamed to
  387.                Fortezza[25][26][27]) cards.  By precomputing the values or
  388.                employing many such devices running in parallel, the time can be
  389.                reduced to virtually nothing.  This attack also opened up a
  390.                number of other interesting possibilities for generally
  391.                bypassing many of the perceived undesirable "features" of
  392.                Clipper.
  393.  
  394. Footnote [21]: It has been claimed that the Clipper proposal is an example of
  395.                the government servicing the people in the sense of the term
  396.                used in the sentence "The farmer got a bull to service his
  397.                cows".
  398.  
  399. Footnote [22]: In December 1994, the ANSI X9 committee rejected Clipper in
  400.                favour of a triple-DES based security standard, for reasons
  401.                summed up in a letter by Electronic Frontiers Foundation board
  402.                member John Gilmore:
  403.  
  404.                "NSA's opposition to triple-DES appears to be an indirect
  405.                 attempt to push Clipper by eliminating credible alternatives.
  406.                 Clipper is not a viable alternative to triple-DES, and carries
  407.                 substantial liabilities.  There has been no evidence of foreign
  408.                 acceptance of the standard and the Skipjack algorithm is
  409.                 classified.  The likelihood of any government accepting secret
  410.                 standards developed by a foreign security agency is slim.
  411.                 Clinton Administration efforts, through the NSA, to push
  412.                 Clipper as a domestic standard over the past two years have
  413.                 failed".
  414.  
  415. Footnote [23]: In the December 1994 "Communications of the ACM", page 12, Mark
  416.                Lomas and Michael Roe demonstrate an attack which takes
  417.                advantage of the fact that the data to be encrypted is
  418.                exclusive-ored with a pseudorandom key stream, so that by
  419.                exclusive-oring the data back in the original key stream can be
  420.                recovered.  At this point any arbitrary data can be
  421.                exclusive-ored into the key stream to create a forged encrypted
  422.                message.  No knowledge of the encryption key is necessary in
  423.                order to perform this attack.
  424.  
  425. Footnote [24]: In June 1994, the statement that A5 was too strong to disclose
  426.                was suddenly changed so that it now became too weak to disclose,
  427.                and that discussing the details might harm export sales.  This
  428.                is an interesting contrast to the position taken in 1993 that
  429.                sales to the Middle East might end up providing A5-capable
  430.                equipment to the likes of Saddam Hussein.  Apparently there was
  431.                a major debate among the NATO signal agencies in the 1980's over
  432.                whether the GSM encryption should be strong or weak, with the
  433.                weak encryption side eventually winning.
  434.  
  435. Footnote [25]: It has been reported that GCHQ, the UK intelligence agency which
  436.                requested the A5X changes, regards as "strong encryption" (and
  437.                therefore not suitable for use by the public) anything which
  438.                can't be broken in real time.
  439.  
  440. Footnote [26]: UK cryptographer Ross Anderson has charecterised A5 as being
  441.                "not much good".  A simple brute-force attack which searches all
  442.                2^40 key combinations will break the system in about a week on a
  443.                standard PC, with much faster attacks being possible using
  444.                either better algorithms, custom hardware, or both.
  445.                Interestingly, the low upper limit on the number of possible
  446.                keys would also seem to meet the US government requirements for
  447.                weak exportable encryption.
  448.  
  449.                Attacks faster than the basic brute-force one are also possible,
  450.                and one such attack was to be presented by Dr Simon Shepherd at
  451.                an IEE colloquium in London on 3rd June 1994.  However the talk
  452.                was canceled at the last minute by GCHQ.
  453.  
  454.                An A5 cracking chip is currently being designed by a student for
  455.                his MSc thesis.
  456.  
  457. Footnote [27]: "Violins, the music says fortezza, not forte".
  458.  
  459. Footnote [28]: "Police have confirmed that the body found floating in the East
  460.                 River late last night belonged to Joey "No Ears" Fortezza, a
  461.                 well-known family man".
  462.  
  463. Footnote [29]: "Will sir be having wine with his spaghetti al fortezza?".
  464.  
  465.  
  466. An Introduction to Encryption Systems
  467. -------------------------------------
  468.  
  469. For space reasons the following introduction to encryption systems is very
  470. brief.  Anyone requiring more in-depth coverage is urged to consult the texts
  471. mentioned in the references at the end of this document.
  472.  
  473. Encryption algorithms (ciphers) are generally one of two types, block ciphers
  474. and stream ciphers.  A block cipher takes a block of plaintext and converts the
  475. entire block into ciphertext.  A stream cipher takes a single bit or byte of
  476. plaintext at a time and converts it into ciphertext.  There also exist means of
  477. converting block ciphers to stream ciphers, and vice versa.  Usually a stream
  478. cipher is preferred, as it doesn't require data to be quantised to the block
  479. size of the cipher in use.  Unfortunately, stream ciphers, although more
  480. convenient, are usually harder to get right than block ciphers.  Many practical
  481. stream ciphers are in fact simply block ciphers pretending to be stream
  482. ciphers.
  483.  
  484. Virtually all good conventional-key ciphers are so-called product ciphers, in
  485. which several (relatively) weak transformations such as substitution,
  486. transposition, modular addition/multiplication, and linear transformation are
  487. iterated over a piece of data, gaining more and more strength with each
  488. iteration (usually referred to as a round).  These types of ciphers have been
  489. extensively studied and are reasonably well understood.  The following table
  490. compares the main parameters of several product ciphers.  Lucifer is the
  491. immediate precursor to the US Data Encryption Standard (DES).  Loki is a
  492. proposed alternative to DES.  FEAL is a fast block cipher designed in Japan.
  493. IDEA is a relatively new Swiss block cipher which has been proposed as a
  494. successor to DES and which has (so far) proven more resistant to attack then
  495. DES.  MDC/SHS is a cipher based on the SHS one-way hash function (more on this
  496. later).
  497.  
  498.    +-----------+------------+----------+-----------+---------------+
  499.    |  Cipher   | Block size | Key size | Number of | Complexity of |
  500.    |           |            |  (bits)  |   rounds  |  Best Attack  |
  501.    +-----------+------------+----------+-----------+---------------+
  502.    |  Lucifer  |    128     |    128   |     16    |     2^21      |
  503.    |    DES    |     64     |     56   |     16    |     2^43      |
  504.    |  Loki91   |     64     |     64   |     16    |     2^48      |
  505.    |  FEAL-8   |     64     |    128   |      8    |    10,000     |
  506.    |   IDEA    |     64     |    128   |      8    |     2^128     |
  507.    |  MDC/SHS  |    160     |    512   |     80    |     2^512     |
  508.    +-----------+------------+----------+-----------+---------------+
  509.  
  510. The complexity of the best known attack is the number of operations necessary
  511. to allow the cipher to be broken.  Note how the block size, key size, and
  512. number of rounds don't necessarily give a good indication of how secure the
  513. algorithm itself is.  Lucifer, although it has twice the block size and over
  514. twice the key size of DES, is rather simple to break (the key size of DES is
  515. discussed a little further on in this section).  DES is the result of several
  516. years of work on improvements to Lucifer.  FEAL has been continually changed
  517. every year or so when the previous version was broken.  Due to this, current
  518. versions are treated with some scepticism.  Both IDEA and MDC have so far
  519. resisted all forms of attack, although recently a class of weak keys have been
  520. discovered in IDEA, but this problem was quickly corrected with a simple change
  521. in the key setup process.  Note that in the case of the last two algorithms the
  522. given complexity is for a brute-force attack (explained below), which is the
  523. most pessimistic kind possible.  There may be much better attacks available,
  524. although if anyone knows of any they're not saying anything. Of the algorithms
  525. listed above, DES has been attacked the hardest, and IDEA and MDC the least,
  526. which may go some way toward explaining the fact that brute force is the best
  527. known attack.
  528.  
  529. There are a large number of modes of operation in which these block ciphers can
  530. be used.  The simplest is the electronic codebook (ECB) mode, in which the data
  531. to be encrypted is broken up into seperate subblocks which correspond to the
  532. size of the block cipher being used, and each subblock is encrypted
  533. individually.  Unfortunately ECB has a number of weaknesses (some of which are
  534. outlined below), and should never be used in a well-designed cryptosystem.
  535. Using P[] to denote a plaintext block, C[] to denote a ciphertext block, e() to
  536. denote encryption, d() to denote decryption, and ^ for the exclusive-or
  537. operation, ECB mode encryption can be given as:
  538.  
  539.     C[ n ] = e( P[ n ] )
  540.  
  541. with decryption being:
  542.  
  543.     P[ n ] = d( C[ n ] )
  544.  
  545. When used to encrypt and decrypt multiple blocks of data, this looks as
  546. follows:
  547.  
  548.        + - - - - - - - - - - - - - - - - - - - - +
  549.           +---------+  +---------+  +---------+
  550.        |  | Block 1 |  | Block 2 |  | Block 3 |  |
  551.           +---------+  +---------+  +---------+
  552.        |       |            |            |       |
  553.                v            v            v
  554.        |  +---------+  +---------+  +---------+  |
  555.  Key ---->| Encrypt |--| Encrypt |--| Encrypt |         Encryption
  556.        |  +---------+  +---------+  +---------+  |
  557.                |            |            |
  558.        |       v            v            v       |
  559.           +---------+  +---------+  +---------+
  560.        |  |         |  |         |  |         |  |
  561.           +---------+  +---------+  +---------+
  562.        + - - - | - - - - - -|- - - - - - | - - - +
  563.                |            |            |
  564.        + - - - v - - - - - -v- - - - - - v - - - +
  565.           +---------+  +---------+  +---------+
  566.        |  |         |  |         |  |         |  |
  567.           +---------+  +---------+  +---------+
  568.        |       |            |            |       |
  569.                v            v            v
  570.        |  +---------+  +---------+  +---------+  |
  571.  Key ---->| Decrypt |--| Decrypt |--| Decrypt |         Decryption
  572.        |  +---------+  +---------+  +---------+  |
  573.                |            |            |
  574.        |       v            v            v       |
  575.           +---------+  +---------+  +---------+
  576.        |  | Block 1 |  | Block 2 |  | Block 3 |  |
  577.           +---------+  +---------+  +---------+
  578.        + - - - - - - - - - - - - - - - - - - - - +
  579.  
  580. Since each block of data is encrypted seperately, two identical blocks of
  581. plaintext will encrypt to give the same ciphertext, and encrypted blocks can be
  582. moved around or deleted without affecting the outcome of the decryption
  583. process.
  584.  
  585. A better encryption mode is cipher block chaining (CBC), in which the first
  586. data subblock is exclusive-ored with an initialization vector (IV) and then
  587. encrypted.  The resulting ciphertext is exclusive-ored with the next data
  588. subblock, and the result encrypted.  This process is repeated until all the
  589. data has been encrypted.  Because the ciphertext form of each subblock is a
  590. function of the IV and all preceding subblocks, many of the problems inherent
  591. in the ECB encryption mode are avoided.  CBC-mode encryption is:
  592.  
  593.     C[ 1 ] = e( P[ 1 ] ^ IV )
  594.     C[ n ] = e( P[ n ] ^ C[ n-1 ] )
  595.  
  596. and decryption is:
  597.  
  598.     P[ 1 ] = d( C[ 1 ] ) ^ IV
  599.     P[ n ] = d( C[ n ] ) ^ C[ n-1 ]
  600.  
  601. When used to encrypt and decrypt multiple blocks of data, this looks as
  602. follows:
  603.  
  604.        + - - - - - - - - - - - - - - - - - - - - - - - - - - -  +
  605.           +---------+  +---------+   +---------+   +---------+
  606.        |  |   IV    |  | Block 1 |   | Block 2 |   | Block 3 |  |
  607.           +---------+  +---------+   +---------+   +---------+
  608.        |       |            |             |             |       |
  609.                +---------> XOR     +---> XOR     +---> XOR
  610.        |                    |      |      |      |      |       |
  611.                             v      |      v      |      v
  612.        |               +---------+ | +---------+ | +---------+  |
  613.  Key ----------------->| Encrypt |-|-| Encrypt |-|-| Encrypt |      Encryption
  614.        |               +---------+ | +---------+ | +---------+  |
  615.                             |      |      |      |      |
  616.        |                    v      |      v      |      v       |
  617.                        +---------+ | +---------+ | +---------+
  618.        |               |         |-+ |         |-+ |         |  |
  619.                        +---------+   +---------+   +---------+
  620.        + - - - - - - - - - -|- - - - - - -|- - - - - - -|- - -  +
  621.                             |             |             |
  622.        + - - - - - - - - - -v- - - - - - -v- - - - - - -v- - -  +
  623.           +---------+  +---------+   +---------+   +---------+
  624.        |  |   IV    |  |         |-+ |         |-+ |         |  |
  625.           +---------+  +---------+ | +---------+ | +---------+
  626.        |       |            |      |      |      |      |       |
  627.                |            v      |      v      |      v
  628.        |       |       +---------+ | +---------+ | +---------+  |
  629.  Key ----------|------>| Decrypt |-|-| Decrypt |-|-| Decrypt |      Decryption
  630.        |       |       +---------+ | +---------+ | +---------+  |
  631.                |            |      |      |      |      |
  632.        |       |            v      |      v      |      v       |
  633.                |       +---------+ | +---------+ | +---------+
  634.        |       |       |         | | |         | | |         |  |
  635.                |       +---------+ | +---------+ | +---------+
  636.        |       |            |      |      |      |      |       |
  637.                +---------> XOR     +---> XOR     +---> XOR
  638.        |                    |             |             |       |
  639.        |                    v             v             v       |
  640.                        +---------+   +---------+   +---------+
  641.        |               | Block 1 |   | Block 2 |   | Block 3 |  |
  642.                        +---------+   +---------+   +---------+
  643.        + - - - - - - - - - - - - - - - - - - - - - - - - - - -  +
  644.  
  645. Each block of data is now chained to the previous and next block, making it
  646. difficult to insert or switch blocks, and hiding the fact that different
  647. encrypted blocks may contain the same plaintext.  By using a unique, random IV,
  648. otherwise identical messages can be encrypted to give different ciphertexts.
  649.  
  650. Another encryption mode is cipher feedback (CFB), in which the IV is encrypted
  651. and then exclusive-ored with the first data subblock to provide the ciphertext.
  652. The resulting ciphertext is then encrypted and exclusive-ored with the next
  653. data subblock to provide the next ciphertext block.  This process is repeated
  654. until all the data has been encrypted.  Because the ciphertext form of each
  655. subblock is a function of the IV and all preceding subblocks (as is also the
  656. case for CBC-mode encryption), many of the problems inherent in the ECB
  657. encryption mode are avoided.  CFB-mode encryption is:
  658.  
  659.     C[ 1 ] = P[ 1 ] ^ e( IV )
  660.     C[ n ] = P[ n ] ^ e( C[ n-1 ] )
  661.  
  662. and decryption is:
  663.  
  664.     P[ 1 ] = C[ 1 ] ^ e( IV )
  665.     P[ n ] = C[ n ] ^ e( C[ n-1 ] )
  666.  
  667. This encryption mode converts a block cipher into a stream cipher in which data
  668. is processed as a stream of bits or bytes rather than a collection of blocks:
  669.  
  670.           + - - - - - - - - - - +             + - - - - - - - - - - +
  671.                                                  +---------------+
  672.  Initial  |     +---------+     |    Initial  |  |  +---------+  |  |
  673.   value ------->|         |<-+        value -----|->|         |<-+
  674.  from IV  |     +---------+  |  |    from IV  |  |  +---------+     |
  675.                      |       |                   |       |
  676.           |          v       |  |             |  |       v          |
  677.                 +---------+  |                   |  +---------+
  678.   Key --------->| Encrypt |  |  |     Key -------|->| Encrypt |     |
  679.                 +---------+  |                   |  +---------+
  680.           |          |       |  |             |  |       |          |
  681.                      v       |                   |       v
  682.           |     +---------+  |  |             |  |  +---------+     |
  683.                 |         |  |                   |  |         |
  684.           |     +---------+  |  |             |  |  +---------+     |
  685.                      |       |                   |       |
  686.   Data -----------> XOR -----+-------------------+----> XOR -----------> Data
  687.           + - - - - - - - - - - +             + - - - - - - - - - - +
  688.  
  689.                  Encryption                          Decryption
  690.  
  691. One interesting feature of this mode of encryption is that there is no need for
  692. a decrypt primitive, since both CFB encryption and CFB decryption only make use
  693. an encrypt primitive.  This means that CFB encryption can be implemented with
  694. non-reversible functions such as the SHS algorithm used for MDC/SHS.
  695.  
  696. There are several other modes of operation for block ciphers which are not
  697. covered here.  More details can be found in the texts given in the references.
  698.  
  699. One point worth noting is that by using a different IV for each message in CBC
  700. and CFB mode, the ciphertext will be different each time, even if the same
  701. piece of data is encrypted with the same key.  This can't be done in ECB mode,
  702. and is one of its many weaknesses.
  703.  
  704. There are several standard types of attack which can be performed on a
  705. cryptosystem.  The most restricted of these is a ciphertext-only attack, in
  706. which the contents of the message are unknown.  This kind of attack virtually
  707. never occurs, as there is usually some regularity or known data in the message
  708. which can be exploited by an attacker.
  709.  
  710. This leads to the next kind of attack, the known-plaintext attack.  In this
  711. case some (or all) of the plaintext of the message is known.  This type of
  712. attack is a lot more common than it would seem, since much data consists of
  713. well-known, fixed-format messages containing standard headers, a fixed layout,
  714. or data conforming to a certain probability distribution such as that of ASCII
  715. text.
  716.  
  717. Finally, in a chosen-plaintext attack the attacker is able to select plaintext
  718. and obtain the corresponding ciphertext.  This attack, which involves fooling
  719. the victim into transmitting a message or encrypting a piece of data chosen by
  720. the attacker, is somewhat more tricky to mount, but can often be performed with
  721. a little work.  For example, it was used to help break the Japanese "Purple"
  722. cipher during WWII by including in a news release a certain piece of
  723. information which it was known the Japanese would encrypt and transmit to their
  724. superiors.
  725.  
  726. However attacks of this kind are usually entirely unnecessary.  Too many
  727. cryptosystems in everyday use today are very easy to break, either because the
  728. algorithms themselves are weak, because the implementations are incorrect, or
  729. because the way they are used is incorrect.  Often amateurs think they can
  730. design secure systems, and are not aware of what an expert cryptanalyst could
  731. do.  Sometimes there is insufficient motivation for anybody to invest the work
  732. needed to produce a secure system.  Many implementations contain flaws which
  733. aren't immediately obvious to a non-expert.  Some of the possible problems
  734. include:
  735.  
  736. - Use of easily-searched keyspaces.  Some algorithms depend for their security
  737.   on the fact that a search of all possible encryption keys (a so-called brute
  738.   force attack) would take too long to be practical.  Or at least, it took too
  739.   long to be practical when the algorithm was designed.  The Unix password
  740.   encryption algorithm is a prime example of this.  The DES key space is
  741.   another example.  Recent research has indicated that the DES was not in fact
  742.   weakened by having only 56 bits of key material (as has often been claimed),
  743.   since the inherent strength of the algorithm itself only provides this many
  744.   bits of security (that is, that increasing the key size would have no effect
  745.   since other attacks which don't involve knowing the key can be used to break
  746.   the encryption in far less than 2^56 operations).  The encryption used in the
  747.   Pkzip archiver can usually be broken automatically in less time than it takes
  748.   to type the password in for authorized access to the data since, although it
  749.   allows longer keys than DES, it makes the check for valid decryption keys
  750.   exceedingly easy for an attacker.
  751.  
  752. - Use of insecure algorithms designed by amateurs.  This covers the algorithms
  753.   used in the majority of commercial database, spreadsheet, wordprocessing, and
  754.   miscellaneous utility programs such as Ami Pro, Arc, Arj, Lotus 123, Lotus
  755.   Symphony, Microsoft Excel, Microsoft Word, Novell Netware, Paradox, Pkzip,
  756.   Quattro Pro, WordPerfect, and many others. These systems are so simple to
  757.   break that the author of at least one package which does so added several
  758.   delay loops to his code simply to make it look as if there was actually some
  759.   work involved.  In addition, some programs which claim to use encryption or
  760.   some related form of security for protection rely instead on a simple
  761.   password check which can be easily bypassed.  Example of this are Fastback,
  762.   Microsoft Money, Norton's partition security system, Quicken, and Stacker.
  763.  
  764. - Use of insecure algorithms designed by experts.  An example is the standard
  765.   Unix crypt command, which is an implementation of a rotor machine much like
  766.   the German Enigma cipher which was broken during WWII.  There is a program
  767.   called cbw (for `crypt breakers workbench') which can automatically decrypt
  768.   data encrypted with crypt[1].  After the war, the US government even sold
  769.   Enigma cipher machines to third-world governments without telling them that
  770.   they knew how to break this form of encryption.
  771.  
  772. - Use of incorrectly-implemented algorithms.  Some encryption programs use the
  773.   DES algorithm, which consists of a series of complicated and arbitrary-
  774.   seeming bit transformations controlled by complex lookup tables.  These
  775.   transformations and tables are very easy to get wrong.
  776.  
  777.   It is a property of the DES algorithm that even the slightest deviation from
  778.   the correct implementation significantly weakens the algorithm itself.  In
  779.   other words any implementation which doesn't conform 100% to the standard may
  780.   encrypt and decrypt data perfectly, but is in practice rather easier to break
  781.   than the real thing.
  782.  
  783.   The US National Bureau of Standards (now the National Institute of Standards
  784.   and Technology) provides a reference standard for DES encryption.  A
  785.   disappointingly large number of commercial implementations fail this test.
  786.  
  787. - Use of badly-implemented algorithms.  This is another problem which besets
  788.   many DES implementations.  DES can be used in several modes of operation,
  789.   some of them better than others.  The simplest of these is the Electronic
  790.   Codebook (ECB) mode, in which a block of data is broken up into seperate
  791.   subblocks which correspond to the unit of data which DES can encrypt or
  792.   decrypt in one operation, and each subblock is then encrypted seperately.
  793.  
  794.   There also exist other modes such as CBC in which one block of encrypted data
  795.   is chained to the next (such that the ciphertext block n depends not only on
  796.   the corresponding plaintext but also on all preceding ciphertext blocks
  797.   0..n-1), and CFB, which is a means of converting a block cipher to a stream
  798.   cipher with similar chaining properties.
  799.  
  800.   There are several forms of attack which can be used when an encrypted message
  801.   consists of a large number of completely independant message blocks.  It is
  802.   often possible to identify by inspection repeated blocks of data, which may
  803.   correspond to patterns like long strings of spaces in text.  This can be used
  804.   as the basis for a known-plaintext attack.
  805.  
  806.   ECB mode is also open to so-called message modification attacks.  Lets assume
  807.   that Bob asks his bank to deposit $10,000 in account number 12-3456-789012-3.
  808.   The bank encrypts the message `Deposit $10,000 in account number
  809.   12-3456-789012-3' and sends it to its central office.  Encrypted in ECB mode
  810.   this looks as follows:
  811.  
  812.     E( Deposit $10,000 in acct. number 12-3456-789012-3 )
  813.  
  814.   Bob intercepts this message, and records it.  The encrypted message looks as
  815.   follows:
  816.  
  817.     H+2nx/GHEKgvldSbqGQHbrUfotYFtUk6gS4CpMIuH7e2MPZCe
  818.  
  819.   Later on in the day, he intercepts the following a message:
  820.  
  821.     H+2nx/GHEKgvldSbqGQHbrUfotYFtUk61Pts2LtOHa8oaNWpj
  822.  
  823.   Since each block of text is completely independant of any surrounding block,
  824.   he can simply insert the blocks corresponding to his account number:
  825.  
  826.     ................................gS4CpMIuH7e2MPZCe
  827.  
  828.   in place of the existing blocks, and thus alter the encrypted data without
  829.   any knowledge of the encryption key used.  Bob has since gone on to early
  830.   retirement in his new Hawaiian villa.
  831.  
  832.   ECB mode, and the more secure modes such as CBC and CFB are described in
  833.   several standards.  Some of these standards make a reference to the
  834.   insecurity of ECB mode, and recommend the use of the stronger CBC or CFB
  835.   modes.  Usually implementors stop reading at the section on ECB, with the
  836.   result being that a number of commercial packages which use DES and which do
  837.   manage to get it correct end up using it in ECB mode.
  838.  
  839. - Protocol errors.  Even if a more secure encryption mode such as CBC or CFB
  840.   mode is used, there can still be problems.  If a standard message format
  841.   (such as the one shown above) is used, modification is still possible, except
  842.   that now instead of changing individual parts of a message the entire message
  843.   must be altered, since each piece of data is dependant on all previous parts.
  844.   This can be avoided by prepending a random initialisation vector (IV) to each
  845.   message, which propagates through the message itself to generate a completely
  846.   different ciphertext each time the same message is encrypted.  The use of the
  847.   salt in Unix password encryption is an example of an IV, although the range
  848.   of only 4096 values is too small to provide real security.
  849.  
  850. In some ways, cryptography is like pharmaceuticals.  Its integrity is
  851. important.  Bad penicillin looks just the same as good penicillin.  Determining
  852. whether most software is correct or not is simple - just look at the output.
  853. However the ciphertext produced by a weak encryption algorithm looks no
  854. different from the ciphertext produced by a strong algorithm.... until an
  855. opponent starts using your supposedly secure data against you, or you find your
  856. money transfers are ending up in an account somewhere in Switzerland, or
  857. financing Hawaiian villas.
  858.  
  859. Footnote [1]: Available from ftp.ox.ac.uk in the directory /src/security as
  860.               cbw.tar.Z.
  861.  
  862.  
  863. Security Analysis
  864. -----------------
  865.  
  866. This section attempts to analyse some of the possible failure modes of SFS and
  867. indicate which strategies have been used to minimise problems.
  868.  
  869.  
  870. Incorrect Encryption Algorithm Implementations
  871.  
  872. When implementing something as complex as most encryption algorithms, it is
  873. very simple to make a minor mistake which greatly weakens the implementation.
  874. For example, making even the smallest change to the DES algorithm reduces its
  875. strength considerably.  There is a body of test data available as US National
  876. Bureau of Standards (NBS, now NIST) special publication 500-20 which can be
  877. used to validate DES implementations.  Unfortunately the programmers who
  878. produce many commercial DES implementations either don't know it exists or have
  879. never bothered using it to verify their code (see the section "Other Software"
  880. above), leading to the distribution of programs which perform some sort of
  881. encryption which is probably quite close to DES but which nevertheless has none
  882. of the security of the real DES.
  883.  
  884. In order to avoid this problem, the SHS code used in SFS has a self-test
  885. feature which you can use to check that it conforms with the data given in
  886. Federal Information Processing Standards (FIPS) publication 180 and ANSI X9.30
  887. part 2, which are the specifications for the SHS algorithm[1].  You can invoke
  888. the self-test in the mksfs program by using the `-t' test option:
  889.  
  890.     mksfs -t
  891.  
  892. The other SFS programs and the SFS driver itself use exactly the same code, so
  893. testing it in mksfs is enough to ensure correctness of the other two programs.
  894. The following tests can take a minute or so to run to completion.
  895.  
  896. The self-test, when run, produces the following output:
  897.  
  898.   Running SHS test 1 ... passed, result=0164B8A914CD2A5E74C4F7FF082C4D97F1EDF880
  899.   Running SHS test 2 ... passed, result=D2516EE1ACFA5BAF33DFC1C471E438449EF134C8
  900.   Running SHS test 3 ... passed, result=3232AFFA48628A26653B5AAA44541FD90D690603
  901.  
  902. You can compare the test results with the values given in Appendix 1 of the
  903. FIPS publication for correctness (mksfs will also print an error message if any
  904. of the tests fail).  If the SHS implementation passes the self-test, mksfs will
  905. perform a speed test and display a message along the lines of:
  906.  
  907.   Testing speed for 10MB data... done.  Time = 31 seconds, 323 kbytes/second
  908.  
  909.   All SHS tests passed
  910.  
  911. Note that the speed given in this test is only vaguely representative of the
  912. actual speed, as the test code used slows the implementation down somewhat.  In
  913. practice the overall speed should be higher than the figure given, while the
  914. actual disk encryption speed will be lower due to the extra overhead of disk
  915. reading and writing.
  916.  
  917. Footnote [1]: The FIPS 180 publication is available from the National Technical
  918.               Information Service, Springfield, Virginia 22161, for $22.50 + $3
  919.               shipping and handling within the US.  NTIS will take telephone
  920.               orders on +1 (703) 487-4650 (8:30 AM to 5:30 PM Eastern Time),
  921.               fax +1 (703) 321-8547.  For assistance, call +1 (703) 487-4679.
  922.  
  923.  
  924. Weak passwords
  925.  
  926. Despite the best efforts of security specialists to educate users about the
  927. need to choose good keys, people persist in using very weak passwords to
  928. protect critical data.  SFS attempts to ameliorate this problem by forcing a
  929. minimum key length of 10 characters and making a few simple checks for insecure
  930. passwords such as single word-word passwords (since the number of words of
  931. length 10 or more characters is rather small, it would allow a very fast
  932. dictionary check on all possible values).  The checking is only rudimentary,
  933. but in combination with the minimum password length should succeed in weeding
  934. out most weak passwords.
  935.  
  936. Another possible method to improve password security is to force a key to
  937. contain at least one punctuation character or at least one digit, as some Unix
  938. systems do.  Unfortunately this tends to encourage people to simply append a
  939. token punctuation character or a fixed digit to the end of an existing key,
  940. with little increase in security.
  941.  
  942. More password issues are discussed in the section "The Care and Feeding of
  943. Passwords" above.
  944.  
  945.  
  946. Data left in program memory by SFS programs
  947.  
  948. Various SFS utilities make use of critical keying information which can be used
  949. to access an SFS volume.  Great care has been taken to ensure that all critical
  950. information stored by these programs is erased from memory at the earliest
  951. possible moment.  All encryption-related information is stored in static
  952. buffers which are accessed through pointers passed to various routines, and is
  953. overwritten as soon as it is no longer needed.  All programs take great care to
  954. acquire keying information from the user at the last possible moment, and
  955. destroy this information as soon as either the disk volume has been encrypted
  956. or the keying information has been passed to the SFS driver.  In addition, they
  957. install default exit handlers on startup which systematically erase all data
  958. areas used by the program, both for normal exits and for error or
  959. special-condition exits such as the user interrupting the programs execution.
  960.  
  961.  
  962. Data left in program memory by the SFS driver
  963.  
  964. The SFS driver, in order to transparently encrypt and decrypt a volume, must
  965. at all times store the keying information needed to encrypt and decrypt the
  966. volume.  It is essential that this information be destroyed as soon as the
  967. encrypted volume is unmounted.  SFS does this by erasing all encryption-related
  968. information held by the driver as soon as it receives an unmount command.  In
  969. addition, the driver's use of a unique disk key for each disk ensures that even
  970. if a complete running SFS system is captured by an opponent, only the keys for
  971. the volumes currently mounted will be compromised, even if several volumes are
  972. encrypted with the same user password (see the section "Password Lifetimes and
  973. Scope" below for more details on this).
  974.  
  975.  
  976. Data left in system buffers by mksfs
  977.  
  978. mksfs must, when encrypting a volume, read and write data via standard system
  979. disk access routines.  This data, consisting of raw disk sectors in either
  980. plaintext or encrypted form, can linger inside system buffers and operating
  981. system or hard disk caches for some time afterwards.  However since none of the
  982. information is critical (the plaintext was available anyway moments before
  983. mksfs was run, and at worst knowledge of the plaintext form of a disk sector
  984. leads to a known plaintext attack, which is possible anyway with the highly
  985. regular disk layout used by most operating systems), and since accessing any of
  986. this information in order to erase it is highly nontrivial, this is not
  987. regarded as a weakness.
  988.  
  989.  
  990. Data left in system buffers by mountsfs
  991.  
  992. As part of its normal operation, mountsfs must pass certain keying information
  993. to the SFS driver through a DOS system call.  DOS itself does not copy the
  994. information, but simply passes a pointer to it to the SFS driver.  After the
  995. driver has been initialised, mountsfs destroys the information as outlined
  996. above.  This is the only time any keying information is passed outside the
  997. control of mountsfs, and the value is only passed by reference.
  998.  
  999.  
  1000. Data left in system buffers by the SFS driver
  1001.  
  1002. Like mksfs, the SFS driver reads and writes data via standard system disk
  1003. access routines.  This data, consisting of raw disk sectors in either plaintext
  1004. or encrypted form, can linger inside system buffers and operating system or
  1005. hard disk caches for some time afterwards.  Once the encrypted volume is
  1006. unmounted, it is essential that any plaintext information still held in system
  1007. buffers be destroyed.
  1008.  
  1009. In order to accomplish this, mountsfs, when issuing an unmount command,
  1010. performs two actions intended to destroy any buffered information.  First, it
  1011. issues a cache flush command followed by a cache reset command to any DOS drive
  1012. cacheing software it recognizes, such as older versions of Microsoft's
  1013. SmartDrive (with IOCTL commands), newer versions of SmartDrive (version 4.0 and
  1014. up), the PCTools 5.x cache, Central Point Software's PC-Cache 6.0 and up, the
  1015. more recent PC-Cache 8.x, Norton Utilities' NCache-F, NCache-S, and the newer
  1016. NCache 6.0 and up, Super PC-Kwik cache 3.0 and up, QuickCache II 4.20 and up,
  1017. Qualitas' QCache 4.0 and up, and Future Computing Systems Fast! 4.02 and up.
  1018. Some other cacheing software can be detected but doesn't support external cache
  1019. flushing.  This step is handled by mountsfs rather than the driver due to the
  1020. rather complex nature of the procedures necessary to handle the large variety
  1021. of cacheing software, and the fact that most cacheing software can't be
  1022. accessed from a device drvier.
  1023.  
  1024. After this the SFS driver itself issues a disk reset command which has the
  1025. effect of flushing all buffered and cached data scheduled to be written to a
  1026. disk, and of marking those cache and buffer entries as being available for
  1027. immediate use.  In addition to the explicit flushing performed by the mountsfs
  1028. program, many cacheing programs will recognise this as a signal to flush their
  1029. internal buffers (quite apart from the automatic flushing performed by the
  1030. operating system and the drive controller).
  1031.  
  1032. Any subsequent disk accesses will therefore overwrite any data still held in
  1033. the cache and system buffers.  While this does not provide a complete guarantee
  1034. that the data has gone (some software disk caches will only support a cache
  1035. flush, not a complete cache reset), it is the best which can be achieved
  1036. without using highly hardware and system-specific code.
  1037.  
  1038.  
  1039. SFS volumes left mounted
  1040.  
  1041. It is possible that an SFS volume may be unintentionally left mounted on an
  1042. unattended system, allowing free access to both the in-memory keying
  1043. information and the encrypted volume.  In order to lessen this problem
  1044. somewhat, the SFS driver provides a fast-unmount hotkey which allows an unmount
  1045. command to be issued instantly from the keyboard (see the sections "Mounting an
  1046. SFS Volume" and "Advanced SFS Driver Options" above).  The ease of use of this
  1047. command (a single keystroke) is intended to encourage the unmounting of
  1048. encrypted volumes as soon as they are no longer needed, rather than whenever
  1049. the system is next powered down.  The driver also provides an automatic
  1050. timed-unmount facility to unmount volumes after they have been left idle for a
  1051. predefined amount of time, so that volumes mistakenly left mounted while the
  1052. system is unattended may be automatically unmounted.  This ensures that, when
  1053. the inevitable distractions occur, encrypted volumes are safely unmounted at
  1054. some point rather than being left indefinitely accessible to anyone with access
  1055. to the system.  Finally, the driver provides the ability to unmount volumes
  1056. when the smart card which controls them is removed from the card reader.
  1057.  
  1058. As an extra precaution, the driver's use of a unique disk key for each disk
  1059. ensures that even if a complete running SFS system with encrypted volumes still
  1060. mounted is captured by an opponent, only the keys for the volumes currently
  1061. mounted will be compromised, even if several volumes are encrypted with the
  1062. same user password (more information on this is given in the section "Password
  1063. Lifetimes and Scope" below).
  1064.  
  1065.  
  1066. Password Lifetimes and Scope
  1067.  
  1068. An SFS password which is used over a long period of time makes a very tempting
  1069. target for an attacker.  The longer a particular password is used, the greater
  1070. the chance that it has been compromised.  A password used for a year has a far
  1071. greater chance of being compromised than one used for a day.  If you use a
  1072. password over a long period of time, the temptation for an attacker to spend
  1073. the effort necessary to break it is far greater than if the password is only a
  1074. short-term one.
  1075.  
  1076. The scope of a password is also important.  If you use a given password to
  1077. encrypt a single drive containing business correspondence, it's compromise is
  1078. only mildly serious.  If you use it to protect dozens of disk volumes or a
  1079. large file server holding considerable amounts of confidential information, the
  1080. compromise of the password could be devastating.  Again, the temptation to
  1081. attack the master password for an entire file server is far greater than for a
  1082. password protecting data contained on a single floppy disk.
  1083.  
  1084. SFS approaches this problem in two ways.  First, it uses unique disk keys to
  1085. protect each SFS volume.  The disk key is a 1024-bit cryptographically strong
  1086. random key generated from nondeterministic values acquired from system
  1087. hardware, system software, and user input (see the subsection "Generating
  1088. Random Numbers" below).  The data on each disk volume is encrypted using this
  1089. unique disk key, which is stored in encrypted form in the SFS volume header
  1090. (this works somewhat like session keys in PEM or PGP, except that a
  1091. conventional-key algorithm is used instead of a public-key one).  To access the
  1092. disk, the encrypted disk key is first decrypted with the user password or key,
  1093. and the disk key itself is used to access the disk.  If the same user key were
  1094. being used to access three encrypted volumes, it would look like this:
  1095.  
  1096.  + User  - - - +            + Encrypted volume 1  - - - - - - - - - - - - +
  1097.  
  1098.  | +--------+  |  decrypt   | +----------+   decrypt    +--------------+  |
  1099.    |User Key|   -----+----->  |Disk Key 1| -----------> |Encrypted Data|
  1100.  | +--------+  |     |      | +----------+              +--------------+  |
  1101.                      |
  1102.  + - - - - - - +     |      + - - - - - - - - - - - - - - - - - - - - - - +
  1103.                      |
  1104.                      |      + Encrypted volume 2  - - - - - - - - - - - - +
  1105.                      |
  1106.                      |      | +----------+   decrypt    +--------------+  |
  1107.                      +----->  |Disk Key 2| -----------> |Encrypted Data|
  1108.                      |      | +----------+              +--------------+  |
  1109.                      |
  1110.                      |      + - - - - - - - - - - - - - - - - - - - - - - +
  1111.                      |
  1112.                      |      + Encrypted volume 3  - - - - - - - - - - - - +
  1113.                      |
  1114.                      |      | +----------+   decrypt    +--------------+  |
  1115.                      +----->  |Disk Key 3| -----------> |Encrypted Data|
  1116.                             | +----------+              +--------------+  |
  1117.  
  1118.                             + - - - - - - - - - - - - - - - - - - - - - - +
  1119.  
  1120. This scheme denies an attacker any known plaintext to work with (as the
  1121. plaintext consists of the random disk key).  To check whether a given password
  1122. is valid, an attacker must use it to decrypt the disk key, rekey the encryption
  1123. system with the decrypted disk key, and try to decrypt the disk data.  Only
  1124. then will they know whether their password guess was correct or not.  This
  1125. moves the target of an attack from a (possibly simple) user password to a
  1126. 1024-bit random disk key[1].  In the above example, an attacker who had somehow
  1127. broken the encryption to recover Disk Key 1 would still have no clue as to the
  1128. identities of Disk Key 2 and Disk Key 3, even though all three volumes use the
  1129. same user password.
  1130.  
  1131. The other way in which SFS tries to ameliorate the problem of password
  1132. lifetimes and scope is by making the changing of a password a very simple
  1133. operation.  Since the only thing which needs to be changed when a password
  1134. change is made is the encryption of the disk key, you can change the password
  1135. in a matter of seconds rather than the many minutes it would take to decrypt
  1136. and re-encrypt an entire disk.  Hopefully the ease with which passwords can be
  1137. changed will encourage you to change passwords frequently.
  1138.  
  1139. Footnote [1]: SFS may not use the entire 1024 bits - the exact usage depends on
  1140.               the encryption algorithm being used.
  1141.  
  1142.  
  1143. Trojan Horses
  1144.  
  1145. The general problem of trojan horses is discussed in the section "Data
  1146. Security" above.  In general, by planting a program in the target machine which
  1147. monitors your password as it is entered or your data as it is read from or
  1148. written to disk, an attacker can spare themselves the effort of attacking the
  1149. encryption system itself.  In an attempt to remove the threat of password
  1150. interception, SFS takes direct control of the keyboard and various other pieces
  1151. of system hardware which may be used to help intercept keyboard access, making
  1152. it significantly more difficult for any monitoring software to detect passwords
  1153. as they are entered.  If any keystroke recording or monitoring routines are
  1154. running, the SFS password entry process is entirely invisible to them.  This
  1155. feature has been tested by a computer security firm who examined SFS, and found
  1156. it was the only program they had encountered (including one rated as secure for
  1157. military use) which withstood this form of attack.
  1158.  
  1159. Similarly, the fast disk access modes used by SFS can be used to bypass any
  1160. monitoring software, as SFS takes direct control of the drive controller
  1161. hardware rather than using the easily-intercepted BIOS or DOS disk access
  1162. routines.
  1163.  
  1164. Although these measures can still be worked around by an attacker, the methods
  1165. required are by no means trivial and will probably be highly system-dependant,
  1166. making a general encryption-defeating trojan horse difficult to achieve.
  1167.